1. Field of Invention
Exemplary aspects of the present invention relate to an information processing apparatus, an information processing system, a message control method, and a program product, which are capable of effectively performing interprocess communication among a plurality of applications simultaneously running on an operating system.
2. Description of Related Art
In general, recent information processing apparatuses have been improved to allow installation of a plurality of applications at each individual apparatus. The plurality of applications installed on an information processing apparatus share various hardware resources under control of an operating system (OS). For example, the hardware resources include a memory, a hard disk, an input-output terminal, a display, and the like installed in or connected to the information processing apparatus. These information processing apparatuses are configured to provide a multitasking or multi-job environment in which a single application or a plurality of the same or different applications simultaneously run.
Such an improved performance of the information processing apparatuses and advanced programming languages have contributed to advances of a personal computer which is a most-popularly used information processing apparatus. In particular, a personal computer becomes capable of allowing the operating system and the applications to communicate with each other via interprocess communication in order to share data or to execute synchronization among the applications. For example, a message generated by the operating system (“the operating system message”) under control of the operating system is usually received by applications running on the operating system or a remote device. However, an operating system message generated for a specific application may not be automatically or directly received by the applications other than the specific application (“the other applications”).
To receive the operating system message for the specific application, in one example, one of the other applications may request the specific application or the operating system to send the operating system message for the specific application. However, the operating system message for the specific application may not be readable to or executable by the other application, since it has been generated for the specific application. In order to make the operating system message for the specific application readable or executable, a supplier of the other application needs to add an object for converting the operating system message into a code readable to or executable by the other application. Thus, the supplier of the other application may be required to modify an application program interface (API) for the other application every time an application is added.
In another example, more than one other applications may need the operating system message for the specific application. For example, when an operating system message is used by both a first other application and a second other application, and only the first other application requests the operating system for the operating system message for the specific application, the second other application cannot receive the operating system message, since the operating system message is addressed to the first application but not to the second application. Therefore, the second other application may also need to request the operating system for the same operating system message and to wait for a response from the operating system. This may increase the overall communication traffic and slow down the process.
One or more of the above-described or other problems may be explained referring to FIG. 1, which illustrates an exemplary software configuration of a related art information processing apparatus, in which a plurality of installed applications performs interprocess communication with an operating system.
As illustrated in FIG. 1, the information processing apparatus 1 includes an application layer 4, an operating system 3, and a BIOS (basic input output system) and/or device driver 2. The application layer 4 includes applications 4a, 4b, and 4c. 
The application 4a directly communicates with the operating system 3 via interprocess communication. For example, the application 4a sends or receives a result of communication with a storage or a communication device controlled by the BIOS and/or device driver 2. In this example, the applications 4b and 4c are not configured to automatically or directly communicate with the operating system 3. Therefore, the application 4b or 4c does not automatically or directly receive an operating system message, which is generated by the operating system 42 for the application 4a. The application 4b or 4c may request the operating system 3 or the application 4a to send the operating system message for the application 4a. However, in one example, the operating system message may not be readable to or executable by the application 4b or 4c. The application 4b or 4c cannot notify a user of the current status of the process, and may cause the use to wait for a certain time period. In another example, the applications 4b and 4c may both request for the same operating system message, thus requiring the user to wait for a certain time period. During the waiting time period, the user is not able to determine whether the process performed by the information processing apparatus 10 hangs up or is waiting to be performed. As a result, the user may choose to restart the information processing apparatus 1, knowing that data that has been created may not be recovered.